From: Dale Wijnand Date: Mon, 16 Apr 2018 22:13:14 +0000 (+0200) Subject: Extract toml_targets_and_inferred & inferred_to_toml_targets X-Git-Tag: archive/raspbian/0.35.0-2+rpi1~3^2^2^2^2^2^2^2~22^2~1^2~52^2~5 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=b61b6e75d7be1ee542c8788415ded9fcb0f4d9fd;p=cargo.git Extract toml_targets_and_inferred & inferred_to_toml_targets --- diff --git a/src/cargo/util/toml/targets.rs b/src/cargo/util/toml/targets.rs index 168245ec1..182154ce6 100644 --- a/src/cargo/util/toml/targets.rs +++ b/src/cargo/util/toml/targets.rs @@ -168,17 +168,11 @@ fn clean_bins( has_lib: bool, ) -> CargoResult> { let inferred = inferred_bins(package_root, package_name); - let bins = match toml_bins { - Some(bins) => bins.clone(), - None => inferred - .iter() - .map(|&(ref name, ref path)| TomlTarget { - name: Some(name.clone()), - path: Some(PathValue(path.clone())), - ..TomlTarget::new() - }) - .collect(), - }; + + let bins = toml_targets_and_inferred( + toml_bins, + &inferred, + ); for bin in &bins { validate_has_name(bin, "binary", "bin")?; @@ -387,17 +381,10 @@ fn clean_targets_with_legacy_path( errors: &mut Vec, legacy_path: &mut FnMut(&TomlTarget) -> Option, ) -> CargoResult> { - let toml_targets = match toml_targets { - Some(targets) => targets.clone(), - None => inferred - .iter() - .map(|&(ref name, ref path)| TomlTarget { - name: Some(name.clone()), - path: Some(PathValue(path.clone())), - ..TomlTarget::new() - }) - .collect(), - }; + let toml_targets = toml_targets_and_inferred( + toml_targets, + inferred, + ); for target in &toml_targets { validate_has_name(target, target_kind_human, target_kind)?; @@ -483,6 +470,27 @@ fn is_not_dotfile(entry: &DirEntry) -> bool { entry.file_name().to_str().map(|s| s.starts_with('.')) == Some(false) } +fn toml_targets_and_inferred( + toml_targets: Option<&Vec>, + inferred: &[(String, PathBuf)], +) -> Vec { + match toml_targets { + None => inferred_to_toml_targets(inferred), + Some(targets) => targets.clone(), + } +} + +fn inferred_to_toml_targets(inferred: &[(String, PathBuf)]) -> Vec { + inferred + .iter() + .map(|&(ref name, ref path)| TomlTarget { + name: Some(name.clone()), + path: Some(PathValue(path.clone())), + ..TomlTarget::new() + }) + .collect() +} + fn validate_has_name( target: &TomlTarget, target_kind_human: &str,